<?php namespace Home\Controller; 

use Hdphp\Controller\Controller;

/**
 * 详情页控制器
 * 田昭鹏
 */

class DescController extends Controller{
	//构造函数
	public function __init(){

	}
	
    //动作
    public function index(){
    	// 获取商品序号
    	$gid=Q('get.gid',0,'intval');
    	// var_dump($gid);
    	$goodsData=Db::table('goods')->join('detail','goods_gid','=','gid')->where('gid',$gid)->get();
    	$goodsData=current($goodsData);
    	// 把图册转换成数组
    	$goodsData['img']=explode('|', $goodsData['img']);
        // 倒序遍历
        $goodsData['img']=array_reverse($goodsData['img']);
    	View::with('goodsData',$goodsData);


    	// 标题导航
    	$cid=$goodsData['category_cid'];
        // 获得父级分类
        $pid=Db::table('category')->where('cid',$cid)->pluck('pid');
        $cate=$this->getFather(Db::table('category')->get(),$pid);
        // 添加自己
        $cate[]=$cid;
        // 获得数据
        $cateData=Db::table('category')->whereIn('cid',$cate)->get();
        // p($typeData);
        View::with('cateData',$cateData);


        // 获取规格
        $type=Db::table('goods_attr')->join('type_attr','taid','=','type_attr_taid')->where('goods_gid',$gid)->orderBy('gaid','ASC')->where('class',2)->get();
        foreach ($type as $k => $v) {
        	$typeData[$v['taname']][]=$v;
        }
        // p($typeData);
        View::with('typeData',$typeData);

        // 获取属性
        $attr=Db::table('goods_attr')->join('type_attr','taid','=','type_attr_taid')->where('goods_gid',$gid)->orderBy('gaid','ASC')->where('class',1)->get();
        // p($attr);
        View::with('attr',$attr);

       	View::make();
    }

    // 获得父级方法
    private function getFather($data,$pid){
        // 声明数组  防止报错
        $temp=array();
        // 循环添加数组元素
        foreach ($data as $v) {
            // 判断子集
            if($pid==$v['cid']){
                // 压入数组
                $temp[]=$v['cid'];
                // 合并数组
                $temp=array_merge($this->getFather($data, $v['pid']),$temp);
            }
        }
        // 返回数组
        return $temp;
    }
    


    // 异步方法  获得类型  判断货品是否存在
    public function ajaxType(){
    	// 匹配  改变字符串
    	$_POST['remote']['combine']=rtrim($_POST['remote']['combine'],'|');
    	// var_dump($_POST);
    	// 开始判断 连接数据库
        $arr=Db::table('goods_list')->where('goods_gid',$_POST['remote']['gid'])->where('combine',$_POST['remote']['combine'])->get();
        $arr=current($arr);
        // p($arr);
        // 分配数据
        View::ajax($arr);
    }


    // 异步方法  获得商品信息  加入session
    public function ajaxGoods(){
        // 接收数组
        $goodsData=current($_POST);
        // p($goodsData);

        // 获得商品id   防止js修改价格
        $gid=$goodsData['id'];
        // 声明空数组  获取商品id字段
        $data['id']=$gid;
        $data['num']=$goodsData['num'];
        $data['options']=$goodsData['options'];
        // 获取商品  获取商品名字段
        $goods=current(Db::table('goods')->where('gid',$gid)->get());
        $data['name']=$goods['gname'];
        $data['price']=$goods['sprice'];
        $data['pic']=$goods['pic'];
        $data['combine']='';
        // 获取附加价格
        foreach ($goodsData['options'] as $k => $v) {
            // 添加附加价格
            $data['price']= $data['price']+Db::table('goods_attr')->where('gaid',$k)->pluck('addprice');
            // 组成颜色  尺码
            // $data['options'][Db::table('goods_attr')->join('type_attr','type_attr_taid','=','taid')->where('gaid',$k)->pluck('taname')]=$v;
            $data['combine'].=$k.'|';
        }
        $data['combine']=rtrim($data['combine'],'|');
        // p($data);die;
        // 存入session
        Cart::add($data);

        // p($_SESSION);
        // 声明空数组
        $arr=array();
        $arr['total_rows']=$_SESSION['cart']['total_rows'];
        $arr['total']=$_SESSION['cart']['total'];
        
        // 分配回去
        View::ajax($arr);
    }
}
